home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / business / mortcost.zip / MORTCOST.BAS next >
BASIC Source File  |  1986-02-27  |  20KB  |  534 lines

  1. 160 GOTO 180
  2. 170 FOR IS=1 TO 24:PRINT:NEXT IS:RETURN :REM This is screen clear subroutine
  3. 180 GOSUB 170
  4. 190 PRINT "MORTCOST . . . A MORTGAGE COST ANALYSIS TOOL
  5. 200 PRINT
  6. 210 PRINT "This program is capable of computing the overall costs of a home mortgage.
  7. 220 PRINT "The effect of variable interest rates, so called 'points' or direct costs,
  8. 230 PRINT "the tax advantages of the loan, and the influence of inflation are
  9. 240 PRINT "all considered in the analysis. 
  10. 290 PRINT
  11. 300 PRINT "Version 2.7"
  12. 310 PRINT "Copyright (c) 1986 by Joann and Terry Quinn"
  13. 315 PRINT "See documentation file MORTCOST.DOC for program features, capabilities, and 
  14. 316 PRINT "instructions, plus restrictions on commercial use and distribution.
  15. 320 FOR IS=1 TO 6:PRINT:NEXT IS
  16. 360 SIZE=60
  17. 370 B=0
  18. 372 DIM LO(SIZE),PO(SIZE),TEMP(SIZE),TA(SIZE),DI(SIZE),IN(SIZE),PR(SIZE),ZP(SIZE),PA(SIZE)
  19. 374 DIM CY(SIZE),IL(SIZE),X1(SIZE),X2(SIZE),X3(SIZE),X4(SIZE),ZL(SIZE),ZT(SIZE),TX(SIZE),PP(SIZE),CO(SIZE)
  20. 400 REM**ENTERING AMORTIZATION PERIOD AND DIMENSIONING FIELDS**
  21. 430 INPUT "ENTER AMORTIZATION PERIOD (LENGTH) OF LOAN IN YEARS"; KYEARS
  22. 435 IF INT(KYEARS)<>KYEARS OR KYEARS<=0 THEN PRINT "YEAR MUST BE A POSITIVE INTEGER . . . RETRY":GOTO 430
  23. 437 IF KYEARS > SIZE THEN PRINT "MAXIMUM ENTRY ="SIZE"    RE-ENTER":GOTO 430
  24. 440 KXYEARS = KYEARS + 1
  25. 450 IF B<>0 THEN 3000 :REM THIS KEEPS IT MOVING THROUGH INITIAL ENTRIES
  26. 500 REM
  27. 600 REM **THIS SECTION ENTERS LOAN AMOUNT **
  28. 610 REM 
  29. 620 PRINT
  30. 630 INPUT "ENTER LOAN PRINCIPAL  $",PR(0)
  31. 640 PRINT
  32. 650 IF B<>0 THEN 3000
  33. 670 PRINT
  34. 700 REM **THIS SECTION FOR ENTERING LOAN INTEREST RATES**
  35. 710 FOR J = 0 TO SIZE
  36. 720 LO(J) = 1E+06
  37. 730 NEXT J
  38. 740 PRINT "ENTER LOAN INTEREST RATE FOR FIRST YEAR"
  39. 750 INPUT "(For example, 11.5% would be enterred as 11.5)  Enter here--> ",LO(1)
  40. 760 PRINT
  41. 770 PRINT
  42. 780 PRINT "IF INTEREST RATE CHANGES DURING LOAN PERIOD, ENTER THE YEAR THAT THE NEW RATE"
  43. 790 PRINT "STARTS AT AND THE NEW RATE.  NOTE:  FIRST YEAR OF LOAN IS YEAR 1."
  44. 800 PRINT "To skip to next input, type S for YEAR"
  45. 810 PRINT
  46. 820 INPUT "YEAR--> ", K$
  47. 830 IF K$ = CHR$(83) OR K$ = CHR$(115) THEN GOTO 870
  48. 840 K=VAL(K$)
  49. 845 IF INT(K)<>K OR K<=0 THEN PRINT "YEAR MUST BE A POSITIVE INTEGER, TRY AGAIN":GOTO 820
  50. 847 IF K>SIZE THEN PRINT "MAXIMUM ENTRY ="SIZE"    RE-ENTER":GOTO 820
  51. 850 INPUT "INTEREST RATE--> ", LO(K)
  52. 860 GOTO 820
  53. 870 PRINT
  54. 880 PRINT
  55. 890 PRINT
  56. 900 J=2
  57. 910 IF LO(J) = 1E+06 THEN LO(J) = LO (J-1)
  58. 920 IF J = SIZE THEN 950
  59. 930 J = J+1
  60. 940 GOTO 910
  61. 950 PRINT
  62. 960 IF B<>0 THEN 3000
  63. 980 PRINT
  64. 1000 REM **THIS SECTION ENTERS TAX BRACKETS**
  65. 1010 FOR J=0 TO SIZE
  66. 1020 TA(J)=1E+06
  67. 1030 NEXT J  :REM **CLEARS TAX BRACKET REGISTERS**
  68. 1040 PRINT "ENTER YOUR CURRENT INCOME TAX BRACKET %-age (example: 25% --> 25 )"
  69. 1050 INPUT "Enter S to skip if you do not want tax calculations--> ",K$
  70. 1051 IF K$=CHR$(83) OR K$=CHR$(115) THEN TA(1)=0:GOTO 1150
  71. 1052 TA(1)=VAL(K$)
  72. 1053 IF TA(1)<1 AND TA(1)<>0 THEN PRINT:PRINT "RE-ENTER AS NON-DECIMAL":GOTO 1040
  73. 1060 PRINT "
  74. 1070 PRINT "IF YOU THINK YOUR TAX BRACKET WILL CHANGE IN THE FUTURE, ENTER"
  75. 1080 PRINT "THE YEAR AND NEW BRACKET.  Enter S for YEAR when finished."
  76. 1090 PRINT "
  77. 1100 INPUT "YEAR--> ", K$
  78. 1110 IF K$ = CHR$(83) OR K$ = CHR$(115) THEN 1150
  79. 1120 K=VAL(K$)
  80. 1125 IF INT(K)<>K OR K<=0 THEN PRINT "YEAR MUST BE A POSITIVE INTEGER, TRY AGAIN":GOTO 1100
  81. 1127 IF K>SIZE THEN PRINT "MAXIMUM VALUE =    "SIZE   "RE-ENTER":GOTO 1100
  82. 1130 INPUT "TAX BRACKET--> ",TA(K)
  83. 1135 IF TA(K)<1 AND TA(K)<>0 THEN PRINT "RE-ENTER AS NON-DECIMAL":GOTO 1130
  84. 1140 GOTO 1100
  85. 1150 PRINT
  86. 1160 PRINT
  87. 1170 J=2
  88. 1180 IF TA(J)=1E+06 THEN TA(J) = TA(J-1)
  89. 1190 IF J =SIZE THEN 1220
  90. 1200 J=J+1
  91. 1210 GOTO 1180
  92. 1220 PRINT
  93. 1230 IF B<>0 THEN 3000
  94. 1300 REM **THIS SECTION IS TO ENTER LOAN POINTS**
  95. 1310 FOR J=0 TO SIZE
  96. 1320 PO(J)=0
  97. 1330 NEXT J :REM CLEARS POINTS REGISTERS
  98. 1340 PRINT "ENTER YEAR & LOAN INTEREST 'POINTS' FOR ANY YEAR THAT"
  99. 1350 PRINT "THEY ARE EXPECTED.  EXAMPLE: 2.5% (2.5 'POINTS') IS ENTERRED AS 2.5"
  100. 1360 PRINT "Enter S for year when finished."
  101. 1370 PRINT
  102. 1380 INPUT "YEAR--> ", K$
  103. 1390 IF K$ = CHR$(83) OR K$ = CHR$(115) THEN GOTO 1430
  104. 1400 K=VAL(K$)
  105. 1405 IF INT(K)<>K OR K<=0 THEN PRINT "YEAR MUST BE A POSITIVE INTEGER, TRY AGAIN":GOTO 1380
  106. 1407 IF K>SIZE THEN PRINT "MAXIMUM VALUE =    "SIZE   "RE-ENTER":GOTO 1380
  107. 1410 INPUT "POINTS--> ",PO(K)
  108. 1420 GOTO 1380
  109. 1430 PRINT
  110. 1440 PRINT
  111. 1450 PRINT
  112. 1460 IF B<>0 THEN 3000
  113. 1500 REM **THIS SECTION FOR NON-DEDUCTIBLE LOAN EXPENSES**
  114. 1510 FOR J=0 TO SIZE
  115. 1520 DI(J)=0
  116. 1530 NEXT J
  117. 1540 PRINT "ENTER YEAR & NON-DEDUCTIBLE EXPENSES (DIRECT COSTS) OF LOAN (DOLLARS)."
  118. 1550 PRINT "Enter S for YEAR when finished."
  119. 1560 PRINT
  120. 1570 INPUT "YEAR--> ", K$
  121. 1580 IF K$ = CHR$(83) OR K$ = CHR$(115) THEN GOTO 1620
  122. 1590 K=VAL(K$)
  123. 1595 IF INT(K)<>K OR K<=0 THEN PRINT "YEAR MUST BE A POSITIVE INTEGER, TRY AGAIN":GOTO 1570
  124. 1597 IF K>SIZE THEN PRINT "MAXIMUM VALUE =    "SIZE   "RE-ENTER":GOTO 1570
  125. 1600 INPUT "DIRECT LOAN COSTS-->  $",DI(K)
  126. 1610 GOTO 1570
  127. 1620 PRINT
  128. 1630 PRINT
  129. 1640 IF B<>0 THEN 3000
  130. 1700 REM **THIS IS PART OF PROGRAM THAT ENTERS INFLATION RATE**
  131. 1710 FOR J=0 TO SIZE
  132. 1720 IN(J) =1E+06
  133. 1730 NEXT J
  134. 1740 PRINT "ENTER ESTIMATE OF THE CURRENT INFLATION RATE TO CALCULATE"
  135. 1760 PRINT "THE COST OF THE LOAN IN TODAY'S DOLLARS.  Enter S to skip this feature"
  136. 1770 PRINT "(Example: 6% inflation enterred as 6)
  137. 1780 PRINT "
  138. 1790 INPUT "ENTER INFLATION ESTIMATE--> ", K$
  139. 1792 IF K$=CHR$(83) OR K$ = CHR$(115) THEN IN(1)=0: GOTO 1900
  140. 1794 IN(1)=VAL(K$)
  141. 1800 PRINT
  142. 1810 PRINT "IF YOU THINK INFLATION WILL CHANGE IN A FUTURE YEAR OR YEARS
  143. 1820 PRINT "ENTER THE YEAR AND NEW RATE."
  144. 1830 PRINT "Enter S for year when finished."
  145. 1840 PRINT
  146. 1850 INPUT "YEAR--> ", K$
  147. 1860 IF K$ = CHR$(83) OR K$ = CHR$(115) THEN GOTO 1900
  148. 1870 K=VAL(K$)
  149. 1875 IF INT(K)<>K OR K<=0 THEN PRINT "YEAR MUST BE A POSITIVE INTEGER, TRY AGAIN":GOTO 1850
  150. 1877 IF K>SIZE THEN PRINT "MAXIMUM VALUE =    "SIZE   "RE-ENTER":GOTO 1850
  151. 1880 INPUT "INFLATION RATE--> ", IN(K)
  152. 1890 GOTO 1850
  153. 1900 PRINT
  154. 1910 PRINT
  155. 1920 J=2
  156. 1930 IF IN(J)=1E+06 THEN IN(J) = IN(J-1)
  157. 1940 IF J=SIZE THEN 1970
  158. 1950 J = J+1
  159. 1960 GOTO 1930
  160. 1970 IF B<>0 THEN 3000
  161. 1975 PRINT
  162. 1980 PRINT
  163. 1990 PRINT "STANDBY"
  164. 2500 REM  *** ENTERRING PRINT USING STRINGS FOR DISPLAY ***
  165. 2510 P$ ="  $$###,###,###.##"
  166. 2520 B1$="###"
  167. 2530 B2$="      ##" 
  168. 2540 B3$="    ##.##"
  169. 2550 B5$="  ##.###"
  170. 2560 B6$="       #.## "
  171. 2570 B7$=" $$###,###.##"
  172. 2580 B8$="$$#,###.##"
  173. 2590 B9$="$$###,###,###.##"
  174. 2600 C1$="                                      $$##,###,###.##"
  175. 2620 C3$="$$##,###,###.##"
  176. 2630 C4$="$$#,###,###.## "
  177. 2650 C6$="  $$###,###,###.## "
  178. 2660 C7$="$$#,###,###.##"
  179. 2680 D3$="  $$##,###,###.##"
  180. 2690 D4$="    $$##,###,###.##"
  181. 2710 E1$="      $$##,###,###.##"
  182. 2720 F3$="$$##,###,###"
  183. 2730 F4$="$$##,###,### "
  184. 2740 F5$="##"
  185. 3000 REM ** INITIAL INPUT ENDED, START OF COMPUTATION AND OUTPUT **
  186. 3002 REM ***  FIRST PART DISPLAYS MENU  ***
  187. 3010 ITEST = 0 :REM  ** SETS FLAG TO SEND OUTPUT TO PRINTER
  188. 3020 B=1  :REM **TURNS OFF PASS THROUGH FLAG SO THAT 
  189. 3030 REM       **INDIVIDUAL VALUES CAN BE CHANGED.
  190. 3040 GOSUB 170
  191. 3050 PRINT "A  CHANGES      AMORTIZATION PERIOD OF LOAN"
  192. 3060 PRINT "B  CHANGES      LOAN PRINCIPAL AMOUNT
  193. 3070 PRINT "C  CHANGES      LOAN INTEREST RATE SCHEDULE"
  194. 3080 PRINT "D  CHANGES      TAX BRACKET SCHEDULE"
  195. 3090 PRINT "E  CHANGES      LOAN POINTS"
  196. 3100 PRINT "F  CHANGES      DIRECT COSTS"
  197. 3110 PRINT "G  CHANGES      INFLATION RATE SCHEDULE"
  198. 3120 PRINT
  199. 3130 PRINT "V  VIEW CURRENT SETTINGS OF INPUTS"
  200. 3140 PRINT
  201. 3150 PRINT "P  COMPUTE RESULTS AND SEND OUTPUT TO PRINTER"
  202. 3160 PRINT "S  COMPUTE RESULTS AND SEND OUTPUT TO SCREEN"
  203. 3170 PRINT
  204. 3180 PRINT "X  EXIT PROGRAM AND RETURN TO OPERATING SYSTEM"
  205. 3190 PRINT
  206. 3200 PRINT 
  207. 3210 PRINT "ENTER LETTER OF DESIRED ROUTINE (Your choice)"
  208. 3220 PRINT
  209. 3230 K$ = INKEY$
  210. 3240 IF K$="A" OR K$="a" THEN GOTO 400
  211. 3250 IF K$="B" OR K$="b" THEN GOTO 600
  212. 3260 IF K$="C" OR K$="c" THEN GOTO 700
  213. 3270 IF K$="D" OR K$="d" THEN GOTO 1000
  214. 3280 IF K$="E" OR K$="e" THEN GOTO 1300
  215. 3290 IF K$="F" OR K$="f" THEN GOTO 1500
  216. 3300 IF K$="G" OR K$="g" THEN GOTO 1700
  217. 3310 IF K$="P" OR K$="p" THEN GOTO 6000
  218. 3320 IF K$="S" OR K$="s" THEN ITEST = 1 : GOTO 6000
  219. 3330 IF K$="X" OR K$="x" THEN GOTO 10000
  220. 3340 IF K$="V" OR K$="v" THEN GOTO 3360
  221. 3350 GOTO 3230
  222. 3360 PRINT
  223. 3370 PRINT "ENTER LETTER OF DESIRED SETTING TO VIEW (A-G)"
  224. 3380 K$=INKEY$
  225. 3390 IF K$="A" OR K$="a" THEN GOTO 3500
  226. 3400 IF K$="B" OR K$="b" THEN GOTO 3600
  227. 3410 IF K$="C" OR K$="c" THEN GOTO 3800
  228. 3420 IF K$="D" OR K$="d" THEN GOTO 4000
  229. 3430 IF K$="E" OR K$="e" THEN GOTO 4200
  230. 3440 IF K$="F" OR K$="f" THEN GOTO 4400
  231. 3450 IF K$="G" OR K$="g" THEN GOTO 4600
  232. 3460 GOTO 3380
  233. 3500 GOSUB 170
  234. 3502 REM ***START OF DISPLAY OF TABLES****
  235. 3510 PRINT
  236. 3520 PRINT
  237. 3530 PRINT "THE CURRENT SETTING OF THE AMORTIZATION PERIOD IS ";KYEARS;" YEARS."
  238. 3540 PRINT
  239. 3550 PRINT
  240. 3560 PRINT
  241. 3570 PRINT "HIT ANY KEY TO CONTINUE"
  242. 3580 K$=INKEY$:IF LEN(K$)= 0 THEN 3580
  243. 3590 GOTO 3040
  244. 3600 GOSUB 170
  245. 3610 PRINT
  246. 3620 PRINT
  247. 3630 PRINT
  248. 3640 PRINT "LOAN PRINCIPAL AMOUNT EQUALS $";PR(0)
  249. 3650 PRINT
  250. 3660 PRINT
  251. 3670 PRINT
  252. 3680 PRINT "HIT ANY KEY TO CONTINUE"
  253. 3690 K$=INKEY$: IF LEN(K$)=0 THEN 3690
  254. 3700 GOTO 3040
  255. 3710 REM ***FOLLOWING SECTIONS CALL TABLE DISPLAY SUBROUTINE***
  256. 3800 REM **DISPLAYS SCHEDULE OF LOAN INTEREST ***
  257. 3820 BS=14
  258. 3830 F2$="##.###       "
  259. 3840 GOSUB 170
  260. 3850 PRINT "LOAN INTEREST RATE SCHEDULE"
  261. 3860 PRINT
  262. 3870 FOR I=1 TO SIZE
  263. 3880 TEMP(I) = LO(I)
  264. 3890 NEXT I
  265. 3900 GOSUB 5000
  266. 3910 GOTO 3040
  267. 4000 REM **   DISPLAYS SCHEDULE OF TAX BRACKETS ***
  268. 4020 F2$="##.#         "
  269. 4030 GOSUB 170
  270. 4040 BS=12
  271. 4050 PRINT "TAX BRACKET SCHEDULE"
  272. 4060 PRINT
  273. 4070 FOR I=1 TO SIZE
  274. 4080 TEMP(I) = TA(I)
  275. 4090 NEXT I
  276. 4100 GOSUB 5000
  277. 4110 GOTO 3040
  278. 4200 REM ***  DISPLAYS LOAN POINTS  ********
  279. 4220 F2$="##.##        "
  280. 4230 BS=13
  281. 4240 GOSUB 170
  282. 4250 PRINT "DIRECT PAYMENT OF INTEREST ('POINTS')"
  283. 4260 PRINT
  284. 4270 FOR I=1 TO SIZE
  285. 4280 TEMP(I) = PO(I)
  286. 4290 NEXT I
  287. 4300 GOSUB 5000
  288. 4310 GOTO 3040
  289. 4400 REM **   DISPLAYS DIRECT COSTS OF LOAN ***
  290. 4420 F2$="#####        "
  291. 4430 GOSUB 170
  292. 4440 BS=13
  293. 4450 PRINT "LOAN DIRECT COSTS"
  294. 4460 PRINT
  295. 4470 FOR I=1 TO SIZE
  296. 4480 TEMP(I) = DI(I)
  297. 4490 NEXT I
  298. 4500 GOSUB 5000
  299. 4510 GOTO 3040
  300. 4600 REM  *****  DISPLAYS INFLATION RATE SCHEDULE   ****
  301. 4620 F2$="##.##        "
  302. 4630 BS=13
  303. 4640 GOSUB 170
  304. 4650 PRINT "INFLATION RATE SCHEDULE"
  305. 4660 PRINT
  306. 4670 FOR I=1 TO SIZE
  307. 4680 TEMP(I) = IN(I)
  308. 4690 NEXT I
  309. 4700 GOSUB 5000
  310. 4710 GOTO 3040
  311. 4720 STOP
  312. 5000 REM ******SUBROUTINE FOR SCREEN DISPLAY OF TABLES*********
  313. 5040 REM 
  314. 5050 PRINT "YEAR    VALUE        YEAR    VALUE        YEAR    VALUE"
  315. 5060 JSUB=1
  316. 5065 F1$=" ##     "
  317. 5070 IF KYEARS <=20 THEN 5100 
  318. 5080 IF KYEARS <=40 THEN 5200
  319. 5090 GOTO 5300
  320. 5100 PRINT USING F1$;JSUB;:PRINT USING F2$;TEMP(JSUB)
  321. 5110 IF JSUB = KYEARS THEN 5420
  322. 5120 IF JSUB = 20 THEN 5420
  323. 5130 JSUB=JSUB+1
  324. 5140 GOTO 5100
  325. 5200 PRINT USING F1$;JSUB;:PRINT USING F2$;TEMP(JSUB);:PRINT USING F1$;JSUB+20;:PRINT USING F2$;TEMP(JSUB+20)
  326. 5210 IF JSUB + 20 = KYEARS THEN 5212 ELSE GOTO 5220
  327. 5212 IF KYEARS = 40 THEN 5420 ELSE JSUB = JSUB + 1:GOTO 5100
  328. 5220 IF JSUB + 20 = 40 THEN 5420
  329. 5230 JSUB = JSUB + 1
  330. 5240 GOTO 5200
  331. 5300 PRINT USING F1$;JSUB;:PRINT USING F2$;TEMP(JSUB);: PRINT USING F1$;JSUB + 20;:PRINT USING F2$;TEMP(JSUB+20);: PRINT USING F1$;JSUB + 40;:PRINT USING F2$;TEMP(JSUB + 40)
  332. 5310 IF JSUB + 40 = KYEARS THEN 5315 ELSE 5320
  333. 5315 IF KYEARS = 60 THEN 5420 ELSE JSUB = JSUB + 1:GOTO 5200
  334. 5320 IF JSUB + 40 = INT(SIZE) THEN 5420
  335. 5330 JSUB = JSUB + 1
  336. 5340 GOTO 5300
  337. 5420 PRINT "HIT ANY KEY TO CONTINUE";
  338. 5430 K$=INKEY$: IF LEN(K$)=0 THEN 5430
  339. 5450 RETURN
  340. 5480 REM     ***END OF SUBROUTINE**
  341. 5490 REM 
  342. 5495 REM  ***BEGINNING OF ACTUAL MATHEMATICAL COMPUTATIONS****
  343. 6000 PRINT 
  344. 6004 PRINT
  345. 6005 IF ITEST=1 THEN 6009
  346. 6006 PRINT "ENTER OPTIONAL TITLE"
  347. 6007 INPUT "(No commas, 40 characters max)--->",A$
  348. 6008 IF LEN(A$)>40 THEN PRINT "TOO LONG, RE-ENTER":GOTO 6006
  349. 6009 PRINT
  350. 6020 PRINT "PLEASE WAIT"
  351. 6030 J=1
  352. 6040 X1(0)=0:X2(0)=0:X3(0)=0:X4(0)=0
  353. 6060 NPERIODS = KYEARS * 12
  354. 6070 REM **COMPUTE PAYMENT**
  355. 6090 PA (J) = (PR (J-1) * ((LO(J))/1200)) / ( 1 -((1+(LO(J)/1200))  ^(-NPERIODS)))
  356. 6100 REM **COMPUTE PRINCIPAL**
  357. 6110 PR(J) = ( 1 / (( 1 + ( LO(J) / 1200 )) ^(-12))) * (( PA(J)) * (((( 1 + ( LO(J)/1200)) ^(-12) ) -1) / ( LO(J) / 1200 )) + ( PR(J-1) ))
  358. 6120 REM **COMPUTE PRINCIPAL PAID**
  359. 6130 PP(J) = PR(J-1) - PR(J)
  360. 6140 REM **COMPUTE LOAN INTEREST**
  361. 6150 ZL(J) = (PA(J) * 12) - PP(J)
  362. 6160 REM **COMPUTE POINTS**
  363. 6170 ZP(J) = PR(J-1) * (  (PO (J))/100  )
  364. 6180 REM **TOTAL UP LOAN INTEREST & POINTS **
  365. 6190 ZT(J) = ZP(J) + ZL (J)
  366. 6200 REM **TAX SAVED ON LOAN INTEREST**
  367. 6210 TX(J) = ZT(J) * (  ( TA(J))/100  )
  368. 6212 REM **NET INTEREST AND DIRECT COST **
  369. 6214 CU = ZT(J) - TX(J) + DI(J)
  370. 6220 REM **NET LOAN CASH OUTLAY **
  371. 6230 CO(J) = ZT(J) - TX(J) + PP(J) + DI (J)
  372. 6240 REM **COMPUTE INFLATION FACTOR & TOTAL COSTS IN CURRENT YEAR'S DOLLARS.**
  373. 6250 IL(0) = 1
  374. 6260 IL(J) = IL(J-1) * (1 + ((IN(J))/100) ): REM cumulative inflation factor
  375. 6270 X1(J) = X1(J-1) + CO(J):REM Sum of total cash out
  376. 6280 CY(J) = (CO(J)) / IL(J):REM Converts cash out to current dollars
  377. 6290 X2(J) = X2(J-1) + CY(J):REM Sum of cash out, current dollars
  378. 6292 X3(J) = X3(J-1) + CU   :REM Sum of net interest and direct
  379. 6294 CV    = (CU) / IL(J)   :REM Converts net int & dir to current dollars
  380. 6296 X4(J) = X4(J-1) + CV   :REM Sum of net int&dir in current dollars
  381. 6300 J=J+1
  382. 6310 IF J=KXYEARS THEN 7000  :REM     **COMPUTATION FINISHED; GOING TO OUTPUT
  383. 6320 IF LO(J) = LO (J-1) THEN 6340
  384. 6330 GOTO 6360
  385. 6340 PA(J) = PA(J-1)
  386. 6350 GOTO 6110
  387. 6360 NPERIODS = (KYEARS - (J-1)) * 12
  388. 6370 GOTO 6070
  389. 7000 REM     ****START OF OUTPUT****************
  390. 7010 IF ITEST = 1 THEN 9000
  391. 7500 REM     ****ROUTINE FOR PRINTED OUTPUT********
  392. 7510 PRINT "YOU SHOULD BE GETTING OUTPUT NOW"
  393. 7530 LPRINT "'MORTCOST' ANALYSIS                ";A$
  394. 7532 LPRINT
  395. 7540 LPRINT "ABBREVIATIONS";:LPRINT "                            LOAN AMOUNT";:LPRINT USING P$;PR(0)
  396. 7550 LPRINT "FEY = FOR ENTIRE YEAR";:LPRINT "    
  397. 7560 LPRINT "SOY = AT START OF YEAR"
  398. 7570 LPRINT "EOY = AT END OF YEAR"
  399. 7580 LPRINT
  400. 7590 H1=0: H2=0
  401. 7610 LPRINT "YEAR  TAX BRKT  INFL   LOAN %    POINTS      $POINTS   $DIRECT  LOAN PAYMENT/MO"
  402. 7620 LPRINT "        FEY     FEY     FEY         SOY         SOY       SOY            FEY"
  403. 7625 LPRINT
  404. 7630 K=1
  405. 7720 LPRINT USING B1$;K;:LPRINT USING B2$;TA(K);:LPRINT USING B3$;IN(K);:LPRINT USING B5$;LO(K);:LPRINT USING B6$;PO(K);:LPRINT USING B7$;ZP(K);:LPRINT USING B8$;DI(K);:LPRINT USING B9$;PA(K)
  406. 7730 H1 = H1 + ZP(K)
  407. 7740 H2 = H2 + DI(K)
  408. 7750 K = K + 1
  409. 7760 IF K = KXYEARS THEN 7780
  410. 7770 GOTO 7720
  411. 7780 LPRINT "-------------------------------------------------------------------------------"
  412. 7810 LPRINT USING C1$;H1;:LPRINT USING B8$;H2
  413. 7820 H3=0: H4=0: H5=0: H6=0
  414. 7860 K = 1
  415. 7870 LPRINT
  416. 7880 LPRINT
  417. 7890 LPRINT "YEAR  LOAN INTEREST   INT. + POINTS  TAX DEDUCT.  PRINCIPAL PAID     PRIN. LEFT"
  418. 7900 LPRINT "           FEY            FEY             EOY         FEY                 EOY"
  419. 7910 LPRINT
  420. 7940 H3 = H3 + ZL(K)
  421. 7950 H4 = H4 + ZT(K)
  422. 7960 H5 = H5 + TX(K)
  423. 7970 H6 = H6 + PP(K)
  424. 7980 LPRINT USING B1$;K;:LPRINT USING C3$;ZL(K);ZT(K);TX(K);:LPRINT USING C4$;PP(K);:LPRINT USING B9$;PR(K)
  425. 7990 K = K+1
  426. 8000 IF K = KXYEARS THEN 8020
  427. 8010 GOTO 7940
  428. 8020 LPRINT"-------------------------------------------------------------------------------"
  429. 8060 LPRINT USING C6$;H3;:LPRINT USING C7$;H4;:LPRINT USING C3$;H5;:LPRINT USING C7$;H6
  430. 8070 LPRINT
  431. 8080 LPRINT
  432. 8090 G3=0: G4=0
  433. 8100 K=1
  434. 8110 LPRINT "YEAR  CUMULATIVE INTEREST,  |   ANNUAL CASH FLOW OUT  |     CUM. CASH FLOW"
  435. 8113 LPRINT "      POINTS,& DIRECT COSTS,|   INCLUDING PRINCIPAL   |     INCL. PRINCIPAL"
  436. 8115 LPRINT "      MINUS TAX DEDUCTION   |   MINUS TAX DEDUCTION   |    MINUS TAX DEDUCT."
  437. 8120 LPRINT "                 ADJ. FOR   |              ADJ. FOR   |               ADJ. FOR"
  438. 8130 LPRINT "      NOMINAL   INFLATION   |   NOMINAL   INFLATION   |   NOMINAL    INFLATION"
  439. 8140 LPRINT
  440. 8170 G3 = G3 + CO(K)
  441. 8180 G4 = G4 + CY(K)
  442. 8190 LPRINT USING F5$;K;:LPRINT USING F3$;X3(K);:LPRINT USING F4$;X4(K);:LPRINT USING F3$;CO(K);:LPRINT USING F4$;CY(K);:LPRINT USING F4$;X1(K);:LPRINT USING F3$;X2(K)
  443. 8200 K = K+1
  444. 8210 IF K=KXYEARS THEN 8230
  445. 8220  GOTO 8170
  446. 8230 LPRINT "_______________________________________________________________________________"
  447. 8240 LPRINT
  448. 8260 LPRINT "TOTAL LOAN COST  W/O INFLATION =";:LPRINT USING B9$;G3
  449. 8270 LPRINT "TOTAL LOAN COST WITH INFLATION =";:LPRINT USING B9$;G4
  450. 8280 FOR J6=1 TO 10
  451. 8290 LPRINT
  452. 8300 NEXT J6
  453. 8310 GOTO 3000
  454. 8320 REM     **** END OF ROUTINE FOR PRINTED OUTPUT
  455. 8330 REM 
  456. 9000 REM   ***ROUTINE FOR SCREEN DISPLAY OF OUTPUT  ******
  457. 9010 ITEST = 0
  458. 9030 GOSUB 170
  459. 9040 PRINT "OUTPUT READY.  HIT ANY KEY TO START.  USE CONTRL-S OR 'PAUSE' TO SUSPEND."
  460. 9045 K$=INKEY$:IF LEN(K$)= 0 THEN 9045
  461. 9047 GOSUB 170
  462. 9050 PRINT "'MORTCOST' ANALYSIS"
  463. 9055 PRINT
  464. 9060 PRINT "ABBREVIATIONS";:PRINT "                            LOAN AMOUNT";:PRINT USING P$;PR(0)
  465. 9070 PRINT "FEY = FOR ENTIRE YEAR";:PRINT "    
  466. 9080 PRINT "SOY = AT START OF YEAR"
  467. 9090 PRINT "EOY = AT END OF YEAR"
  468. 9100 PRINT
  469. 9110 H1=0: H2=0
  470. 9130 PRINT "YEAR  TAX BRKT  INFL   LOAN %    POINTS      $POINTS   $DIRECT  LOAN PAYMENT/MO"
  471. 9140 PRINT "        FEY     FEY     FEY         SOY         SOY       SOY            FEY"
  472. 9145 PRINT
  473. 9150 K=1
  474. 9240 PRINT USING B1$;K;:PRINT USING B2$;TA(K);:PRINT USING B3$;IN(K);:PRINT USING B5$;LO(K);:PRINT USING B6$;PO(K);:PRINT USING B7$;ZP(K);:PRINT USING B8$;DI(K);:PRINT USING B9$;PA(K)
  475. 9250 H1 = H1 + ZP(K)
  476. 9260 H2 = H2 + DI(K)
  477. 9270 K = K + 1
  478. 9280 IF K = KXYEARS THEN 9300
  479. 9290 GOTO 9240
  480. 9300 PRINT "-------------------------------------------------------------------------------"
  481. 9330 PRINT USING C1$;H1;:PRINT USING B8$;H2
  482. 9340 H3=0: H4=0: H5=0: H6=0
  483. 9380 K = 1
  484. 9390 PRINT
  485. 9400 PRINT
  486. 9410 PRINT "YEAR  LOAN INTEREST   INT. + POINTS  TAX DEDUCT.  PRINCIPAL PAID     PRIN. LEFT"
  487. 9420 PRINT "           FEY            FEY             EOY         FEY                 EOY"
  488. 9430 PRINT
  489. 9460 H3 = H3 + ZL(K)
  490. 9470 H4 = H4 + ZT(K)
  491. 9480 H5 = H5 + TX(K)
  492. 9490 H6 = H6 + PP(K)
  493. 9500 PRINT USING B1$;K;:PRINT USING C3$;ZL(K);ZT(K);TX(K);:PRINT USING C4$;PP(K);:PRINT USING B9$;PR(K)
  494. 9510 K = K+1
  495. 9520 IF K = KXYEARS THEN 9540
  496. 9530 GOTO 9460
  497. 9540 PRINT"-------------------------------------------------------------------------------"
  498. 9580 PRINT USING C6$;H3;:PRINT USING C7$;H4;:PRINT USING C3$;H5;:PRINT USING C7$;H6
  499. 9590 PRINT
  500. 9600 PRINT
  501. 9610 G3=0: G4=0
  502. 9620 K=1
  503. 9630 PRINT "YEAR  CUMULATIVE INTEREST,  |   ANNUAL CASH FLOW OUT  |     CUM. CASH FLOW"
  504. 9640 PRINT "      POINTS,& DIRECT COSTS,|   INCLUDING PRINCIPAL   |     INCL. PRINCIPAL"
  505. 9650 PRINT "      MINUS TAX DEDUCTION   |   MINUS TAX DEDUCTION   |    MINUS TAX DEDUCT."
  506. 9660 PRINT "                 ADJ. FOR   |              ADJ. FOR   |              ADJ. FOR"
  507. 9670 PRINT "      NOMINAL   INFLATION   |   NOMINAL   INFLATION   |   NOMINAL    INFLATION"
  508. 9680 PRINT
  509. 9690 G3 = G3 + CO(K)
  510. 9700 G4 = G4 + CY(K)
  511. 9710 PRINT USING F5$;K;:PRINT USING F3$;X3(K);:PRINT USING F4$;X4(K);:PRINT USING F3$;CO(K);:PRINT USING F4$;CY(K);:PRINT USING F4$;X1(K);:PRINT USING F3$;X2(K)
  512. 9720 K=K+1
  513. 9730 IF K=KXYEARS THEN 9750
  514. 9740 GOTO 9690
  515. 9750 PRINT "_______________________________________________________________________________"
  516. 9760 PRINT
  517. 9780 PRINT "TOTAL LOAN COST  W/O INFLATION =";:PRINT USING B9$;G3
  518. 9790 PRINT "TOTAL LOAN COST WITH INFLATION =";:PRINT USING B9$;G4
  519. 9800 PRINT
  520. 9810 PRINT "HIT SPACEBAR TO CONTINUE
  521. 9820 K$=INKEY$:IF LEN(K$)= 0 THEN 9820 
  522. 9825 IF ASC(K$)<>32 THEN 9820
  523. 9830 GOTO 3000
  524. 10000 PRINT 
  525. 10010 PRINT
  526. 10020 PRINT "***CAUTION***
  527. 10030 PRINT 
  528. 10040 PRINT "ARE YOU SURE THAT YOU WANT TO EXIT PROGRAM? (Y/N)"
  529. 10050 K$=INKEY$ :IF K$ = "Y" OR K$ = "y" THEN GOTO 10080
  530. 10060 IF K$ = "N" OR K$ = "n" THEN GOTO 3000
  531. 10070 GOTO 10050
  532. 10080 SYSTEM
  533. 10090 END
  534.